package com.zfzs.post.modules.agent.domain;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import lombok.Data;

import javax.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;

/**
 * 基础用户信息
* @author ck
* @date 2019-08-07
*/
@Entity
@Data
@Table(name="agent")
public class Agent implements Serializable {

    // 系统生成的推荐码
    @Id
    @Column(name = "id")
    private Long id;

    // 上级推荐人
    @Column(name = "pid_id")
    private Long pidId;

    // 登录手机号码
    @Column(name = "phone")
    private String phone;

    // 所属用户类型 0：普通 1：会员  2：
    @Column(name = "user_type")
    private Integer userType;

    // 状态：0启用、1禁用
    @Column(name = "is_enabled")
    private Boolean isEnabled;

    // 用户是否实名认证 0：否 1：审核中 2：是
    @Column(name = "is_effective")
    private Integer isEffective;

    // 密码随机盐值
    @Column(name = "salt")
    private String salt;

    // 密码
    @Column(name = "password")
    private String password;

    // 是否删除 
    @Column(name = "del_flag")
    private Boolean delFlag;

    //用户详细信息
    @OneToOne
    @JoinColumn(name="id")
    private AgentInfo agentInfo;

    //余额数量
    @OneToOne
    @JoinColumn(name="id")
    private AgentMoney agentMoney;

    // 创建日期
    @Column(name = "create_time")
    private Timestamp createTime;

    // 创建日期
    @Column(name = "create_date")
    private Timestamp createDate;

    // 修改时间
    @Column(name = "update_time")
    private Timestamp updateTime;

    @Column(name = "update_password_time")
    private Timestamp updatePasswordTime;
    //渠道id
    @Column(name="channel_id")
    private Long channelId;

    //用户状态 0：政策 1：沉默 2：
    @Column(name="status")
    private Long status;

    public void copy(Agent source){
        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
    }
}